/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.siagefi.service;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 *
 * @author NOTE
 */

public class DataService {
    
    private Calendar data;

    public DataService() {
        this.data = new GregorianCalendar();
    }

    public Calendar getDataParcela() {
        return data;
    }
    
    public Date getDataParcela(int nrParcela, Date dataPrimeiraParcela, String periodicidade) {
        if(nrParcela == 1 ){
            return dataPrimeiraParcela;
        }else {
            int contador = nrParcela - 1;
            data.setTime(dataPrimeiraParcela);
            if(periodicidade.equalsIgnoreCase("Mensal")) {
                data.add(Calendar.MONTH, contador);
                return data.getTime();
            }
            if(periodicidade.equalsIgnoreCase("Bimestral")) {
                data.add(Calendar.MONTH, contador * 2 );
                return data.getTime();
            }
            if(periodicidade.equalsIgnoreCase("Trimestral")) {
                data.add(Calendar.MONTH, contador * 3 );
                return data.getTime();
            }
            if(periodicidade.equalsIgnoreCase("Semestral")) {
                data.add(Calendar.MONTH, contador * 6 );
                return data.getTime();
            }
            if(periodicidade.equalsIgnoreCase("Anual")) {
                data.add(Calendar.MONTH, contador * 12);
                return data.getTime();
            }
            return null;
        }
    }

    public void setDataParcela(Calendar dataParcela) {
        this.data = dataParcela;
    }

    Date getDataFimPeriodo(Date dataInicio, String periodicidade) {
        data.setTime(dataInicio);
        int contador = 30;
        if(periodicidade.equalsIgnoreCase("Mensal")) {
            data.add(Calendar.DAY_OF_MONTH, contador);
            return data.getTime();
        }
        if(periodicidade.equalsIgnoreCase("Bimestral")) {
            data.add(Calendar.DAY_OF_MONTH, contador * 2 );
            return data.getTime();
        }
        if(periodicidade.equalsIgnoreCase("Trimestral")) {
            data.add(Calendar.DAY_OF_MONTH, contador * 3 );
            return data.getTime();
        }
        if(periodicidade.equalsIgnoreCase("Semestral")) {
            data.add(Calendar.DAY_OF_MONTH, contador * 6 );
            return data.getTime();
        }
        if(periodicidade.equalsIgnoreCase("Anual")) {
            data.add(Calendar.DAY_OF_MONTH, contador * 12);
            return data.getTime();
        }
        return null;
    }
    
}
